package com.cskaoyan.javase.oop3._0abstract._2notice;

/**
 * 注意事项:
 *      1.抽象类是作为祖先类使用的,其它场景下尽量不要用.
 *      2.abstract关键字，不能用来修饰构造器、属性、代码块等结构。只能修饰类或者方法。
 *      abstract修饰类时，类的修饰符不能有final。
 *
 *      3.abstract修饰方法时，该方法不能有修饰符：
 *          private
 *          static
 *          final
 *      当然abstract修饰符也不能修饰构造方法
 *      抽象方法定义出来就是为了实现的,就是为了被重写的,上面都是不能重写的情况
 *
 *      4.一个抽象类中可以没有抽象方法，但是意义不是很大（普遍来说，抽象类就应该有抽象方法）
 * @since 16:11
 * @author wuguidong@cskaoyan.onaliyun.com
 */
public class Demo {
}

abstract class AbstractA {
    // Illegal combination of modifiers: 'abstract' and 'private'
    // private abstract void test();

    // Illegal combination of modifiers: 'abstract' and 'static'
    // public static abstract void test();

    // Illegal combination of modifiers: 'abstract' and 'final'
    // public final abstract void test();
}